O1111(FACE MILL MACRO)
(STARTS AT UPPER LEFT CORNER)
(BASED ON X0Y0 MIDDLE OF STOCK)
(IF YOU WANT TO COMPLETELY EXIT)
(OFF STOCK FOR FINISH MAKE YOUR)
(E VARIABLE BIGGER THAN TOOL DIAMETER)
(PROVEN ON NC PLOT ONLY) 
 
(FORMAT G65/G66 QTXYSEZWRF)
(Q = #17 - STEPOVER IN Z/ DOC)
(T = #20 - TOOL DIAMETER)
(X = #24 - MATERIAL SIZE -X-)
(Y = #25 - MATERIAL SIZE -Y-)
(S = #19 - STEPOVER PERCENTAGE) 
(E = #8  - EDGE HANGOVER AMOUNT)
(Z = #26 - Z ZERO/TOP OF STOCK)
(W = #23 - END Z)
(R = #18 - CLEARANCE PLANE)
(F = #9  - FEEDRATE)
(*********************************)
(CALCULATE Y STEPOVER AMOUNT)
#100=[#19*.01]*#20
(STORE X AND Y ABSOLUTES)
#101=#5001
#102=#5002
(CALCULATE # OF PASSES)
#103=#25+[#20-#100]
#104=FUP[#103/#100]
#114=#104
(CALCULATE PATTERN)
(CLEARANCE POSITION X LEFT)
#105=#101-[[#24/2.]+1.]
#105=#105-[#20/2.]
(CLEARANCE POSITION X RIGHT)
#106=#101+[[#24/2.]+1.]
#106=#106+[#20/2.]
(HANGOVER POSTION X LEFT)
#115=#101-[[#24/2.]+#8]
#115=#115+[#20/2.]
(HANGOVER POSTION X RIGHT)
#116=#101+[[#24/2.]+#8]
#116=#116-[#20/2.]
(Y INITIAL START)
#107=#102+[[#25/2.]+[#20-#100]]
#107=#107-[#20/2.]
(CALCULATE Z STEPOVER)
#120=ABS[#26]-ABS[#23]
#120=ABS[#120]
IF[[#26*#23]GE0]GOTO1
#120=ABS[#26]+ABS[#23]
N1#121=ROUND[#120/#17]
#122=#120/#121
IF[#122GT[#120/2.]]THEN#122=#120
(RAPID TO MIDDLE OF STOCK)
G0G90X#101Y#102
(GOTO INITIAL CLEARANCE PLANE)
(UPPER LEFT CORNER)
X#105Y#107
Z[#26+.1]
G1Z#26F#9
#123=#5003-#122
(CUT FACE)
WHILE[#121GE1.]DO1
IF[#121EQ0]GOTO1001
G1Z#123F#9
#121=#121-1.
WHILE[#104GE1.]DO2
IF[#104LT1.]GOTO10
#104=#104-1.
G90G1X#116
IF[#104LT1.]GOTO10
G91Y-#100
#104=#104-1.
G90G1X#115
IF[#104LT1.]GOTO10
G91Y-#100
END2
N10
#104=#114
(EXIT OFF STOCK)
IF[#5001GT#101]GOTO100
G90G1X#105
GOTO1000
N100
G90G1X#106
N1000
G0Z[#123+.1]
X#105Y#107
#123=#123-#122
END1
N1001G0Z#18
X#101Y#102
M99
